﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

using r.libr;

namespace r.libr.Media
{
    public partial class Tag
    {
        private Treetable TagTree;
        public AlbumInfo Album;
        public ArtistsInfo Artists;

        public Tag()
        {
            TagTree = new Treetable();
            FillTagTree();
            Album = new AlbumInfo(TagTree);
            Artists = new ArtistsInfo(TagTree);
        }

        private void FillTagTree()
        {
            TagTree.AddNode("Album");
                TagTree.AddLeaf("Album.Title", null);
                TagTree.AddLeaf("Album.Set", null);
                TagTree.AddLeaf("Album.TrackNo", null);

            TagTree.AddNode("Artists");
                TagTree.AddLeaf("Artists.Composers", null);
                TagTree.AddNode("Artists.Performers");
                    TagTree.AddLeaf("Artists.Performers.Lead", null);
                    TagTree.AddLeaf("Artists.Performers.Accompaniment", null);
                    TagTree.AddLeaf("Artists.Performers.Remix", null);
                    TagTree.AddLeaf("Artists.Performers.Refinement", null);                   
                TagTree.AddLeaf("Artists.Writers", null);                 

            TagTree.AddNode("Track");
                TagTree.AddLeaf("Track.Title", null);
                TagTree.AddLeaf("Track.Content", null);
                TagTree.AddLeaf("Track.Subtitle", null);
                TagTree.AddLeaf("Track.Language", null);
                TagTree.AddLeaf("Track.Date", null);
                TagTree.AddLeaf("Track.Time", null);
                TagTree.AddLeaf("Track.Year", null);
                TagTree.AddLeaf("Track.Dates", null);
                TagTree.AddLeaf("Track.Copyright", null);
                TagTree.AddLeaf("Track.Key", null);
                TagTree.AddLeaf("Track.Publisher", null);

            TagTree.AddNode("File");
                TagTree.AddLeaf("File.Type", null);
                TagTree.AddLeaf("File.Length", null);
                TagTree.AddLeaf("File.Media", null);
                TagTree.AddLeaf("File.Licensee", null);
                TagTree.AddLeaf("File.Encoder", null);

            TagTree.AddNode("Misc");
                TagTree.AddNode("Misc.Websites");
                    TagTree.AddLeaf("Misc.Websites.Album", null);
                    TagTree.AddLeaf("Misc.Websites.Performers", null);
                    TagTree.AddLeaf("Misc.Websites.Publisher", null);
                    TagTree.AddLeaf("Misc.Websites.Track", null);
                    TagTree.AddLeaf("Misc.Websites.File", null);
                TagTree.AddNode("Misc.Original");
                    TagTree.AddLeaf("Misc.Original.AlbumTitle", null);
                    TagTree.AddLeaf("Misc.Original.Performers", null);
                    TagTree.AddLeaf("Misc.Original.Writers", null);
                    TagTree.AddLeaf("Misc.Original.Year", null);
                    TagTree.AddLeaf("Misc.Original.TrackTitle", null);
                    TagTree.AddLeaf("Misc.Original.FileName", null);
        }

    }
}
